"""
Copyright 2009 Texas A&M University
 
Licensed under the Apache License, Version 2.0 (the "License"); you may not use 
this file except in compliance with the License. You may obtain a copy of the 
License at

http://www.apache.org/licenses/LICENSE-2.0
  
Unless required by applicable law or agreed to in writing, software distributed 
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
CONDITIONS OF ANY KIND, either express or implied. See the License for the 
specific language governing permissions and limitations under the License. 
"""

import zope.interface

class IMetadata(zope.interface.Interface):
    """
    """
    def __eq__(self, other):
        """Check for equality based on getFormat() and getSource() and 
        getValue() """
    
    def __hash__(self):
        """Return a hash based on the tuple of getSource() and getFormat() 
        and getValue():
        i.e. return hash((self.getSource(),self.getFormat(),self.getValue(),)) """
    
    def getFormat(self):
        """ Return the format of the metadata """
  
    def getSource(self):
        """ Return the source of the metadata """
  
    def getValue(self):
        """ Return the value of the metadata """
    
    def getInstance(self):
        """ Return the instance this metadata represents """
    
    def setInstance(self, instance):
        """ Set the instance for the metadata object """